package com.light.gulimall.cart.service;

import com.light.gulimall.cart.vo.Cart;
import com.light.gulimall.cart.vo.CartItem;

import java.util.List;
import java.util.concurrent.ExecutionException;

public interface CartService {

    /**
     * 加入购物车
     * @param skuId
     * @param num
     * @return
     */
    CartItem addToCart(Long skuId, Integer num) throws ExecutionException, InterruptedException;

    /**
     * 根据skuId查询redis
     * @param skuId
     * @return
     */
    CartItem getInfoBySkuId(Long skuId);

    /**
     * 得到购物车信息
     * @return
     */
    Cart getCartListPage() throws ExecutionException, InterruptedException;

    /**
     * 修改勾选状态
     * @param skuId
     * @param prop
     */
    void checkItem(Long skuId, Boolean prop);

    /**
     * 修改数量
     * @param skuId
     * @param num
     */
    void modifyNum(Long skuId, Integer num);

    /**
     * 删除ID对应缓存中的商品
     * @param skuId
     */
    void deleteItem(Long skuId);

    /**
     * 得到用户当前选中的购物车信息
     * @return
     */
    List<CartItem> getCurrentUserCartItems();


}

